// --------------------------------- 系统 - 方法引入
// 获取节点dom信息
import nodeInfo from './lib/sys/nodeInfo.js'
// 跳转页面
import pageJump from './lib/sys/pageJump.js'
// 获取设备信息-异步
import systemInfo from './lib/sys/systemInfo.js'
// 应用当前运行环境
import runtimeType from './lib/sys/runtimeType.js'

// --------------------------------- 缓存 - 方法引入
// 应用永久保存特例缓存
import varForever from './lib/storage/varForever.js'
// 应用本次打开临时变量
import varShortTime from './lib/storage/varShortTime.js'

// --------------------------------- 数据 获取/转化 - 方法引入
// 获取N天后的时间
import dateFuture from './lib/data/dateFuture.js'
// AES解密
import decodeAES from './lib/data/decodeAES.js'
// Base64编码
import decodeBase64 from './lib/data/decodeBase64.js'
// AES加密
import encodeAES from './lib/data/encodeAES.js'
// Base64解码
import encodeBase64 from './lib/data/encodeBase64.js'
// MD5加密
import MD5 from './lib/data/MD5.js'
// 数字按小数点分割
import numPart from './lib/data/numPart.js'
// 生成随机数字
import numRandom from './lib/data/numRandom.js'
// obj拷贝
import objCopy from './lib/data/objCopy.js'
// 生成随机字符串
import strRandom from './lib/data/strRandom.js'
// 转换到 → date
import toDate from './lib/data/toDate.js'
// 转换到 → number
import toFloat from './lib/data/toFloat.js'
// 转换到 → obj
import toJson from './lib/data/toJson.js'
// 转换到 → json式显示html字符串
import toJsonHtml from './lib/data/toJsonHtml.js'
// 将数据转换为名称/值对编码字符串
import toQueryString from './lib/data/toQueryString.js'

// --------------------------------- 接口请求 - 方法引入
// 网络请求通用IP地址头部
import http from './lib/network/http.js'
// download资源下载
import download from './lib/network/download.js'
// upload资源上传
import upload from './lib/network/upload.js'
// request接口请求
import request from './lib/network/request.js'


// ========================================================= ↑ 上述工具方法定义
const $focus = {
	nodeInfo,
	pageJump,
	systemInfo,
    runtimeType,
	
	varForever,
	varShortTime,
	
	dateFuture,
	decodeAES,
	decodeBase64,
	encodeAES,
	encodeBase64,
	MD5,
	numPart,
	numRandom,
	objCopy,
	strRandom,
	toDate,
	toFloat,
	toJson,
	toJsonHtml,
	toQueryString,
	
	http,
	download,
	upload,
	request
}


// ========================================================= 初次执行
const focusUI = {
	
	// 初始化函数
	install: (Vue, options) => {
		
		// Vue.mixin(mixin)
		// if (Vue.prototype.openShare) {
		// 	Vue.mixin(mpShare);
		// }
		// // Vue.mixin(vuexStore);
		// // 时间格式化，同时两个名称，date和timeFormat
		// Vue.filter('timeFormat', (timestamp, format) => {
		// 	return timeFormat(timestamp, format)
		// })
		// Vue.filter('date', (timestamp, format) => {
		// 	return timeFormat(timestamp, format)
		// })
		// // 将多久以前的方法，注入到全局过滤器
		// Vue.filter('timeFrom', (timestamp, format) => {
		// 	return timeFrom(timestamp, format)
		// })
		
        // 获取当前运行环境
        let runType = runtimeType();
        // 如果是“非Uni”运行
        if (runType=='nonUNI' || !runType) {
            // 将 $focus 挂载为 vue 属性
            Vue.prototype.$focus = $focus
            // 将 $focus 挂载为 window 属性
            window.$focus = $focus
        }
		// 如果是uni项目编译
        else {
            // 将 $focus 挂载到 uni 对象上
            uni.$focus = $focus
        }
		
	}
	
}

export default focusUI